22 research outputs found
Recommended from our members
Loop scheduling on distributed-memory parallel processors
We provide a new solution to the problem of scheduling parallel program tasks that are enclosed in a set of nested loops on distributed-memory parallel computers. The new solution is extended to a new scheduling heuristic for scheduling unrolled loops onto arbitrary target machines. Our technique allows several iterations of a set of loops as well as tasks within the same iteration to overlap in execution in a way that minimizes the loop completion time. We then compare local neighborhood search versus simulated annealing optimization methods to find the best way to unroll the nested loops. Finally, the schedule is presented in the form of a Gantt chart that indicates the allocation and the order of the tasks in the unrolled loops
Recommended from our members
ELGDF : design language for parallel programming
ELGDF (Extended Large Grain Data Flow) is a design language that allows representation of a wide variety of parallel programs. The syntax is graphical and hierarchical to allow construction and viewing of realistically sized programs. ELGDF language facilitates describing parallel programs in a natural way for both shared memory model as well as message passing model. The syntax poses high level structures such as replicators, loops , pipes, branches, and fans, as well as constructs for shared resources. ELGDF resolves arc overloading in current graphical languages by using different symbols and different attributes for different types of arcs.
The ELGDF serves as the foundation of a parallel programming environment under development at Oregon State University. The complete syntax of ELGDF helps the program designers to deal with parallelism in the manner most natural to the problem at hand. It also helps as a way to capture parallel program designs for the purpose of analysis such as scheduling and performance estimating. Thus, the goal of ELGDF is two-fold: 1) a program design notation and computer-aided software engineering tool, and 2) a software description notation for use by automated schedulers and performance analyzers
Recommended from our members
Loop unrolling for parallel systems
In this paper we study the problem of scheduling parallel program tasks that are enclosed in a set of nested loops on parallel computers. We first introduce a representation of the tasks and their relations in a loop. The representation allows us to express loop-carried data dependences among tasks as well as loop information that cannot be represented using ordinary task graphs. We also introduce a new technique for scheduling unrolled loops onto arbitrary target machines. Our technique allows several iterations of a set of loops as well as tasks within the same iteration to overlap in execution in a way that minimizes the loop completion time. We use local neighborhood search and simulated annealing optimization methods to find the best way to unroll a set of nested loops. Our goal is to find which loops to unroll and for how many times, and the Gantt chart that indicates the allocation and the order of the tasks in the post-unrolling loop on the available processors
Recommended from our members
Self-Configuring Wireless MEMS Network
This presentation discusses miniature, lightweight, self-powered wireless sensors, and networking software needs
Task Scheduling in Multiprocessing Systems
Jobs needing to be processed in a manufacturing plant, bank customers
waiting to be served by tellers, aircraft waiting for landing
clearances, and program tasks to be run on a parallel or distributed
computer: What do these situations have in common? They all encounter
the scheduling problem that emerges whenever there is a choice concerning
the order in which tasks can be performed and the assignment
of tasks to servers for processing. In general, the scheduling problem
assumes a set of resources and a set of consumers serviced by those
resources according to a certain policy. The nature of the consumers and
resources as well as the constraints on them affect the search for an efficient
policy for managing the way consumers access and use the resources
to optimize some desired performance measure. Thus, a scheduling system
comprises a set of consumers, a set of resources, and a scheduling
policy
Advanced Computer Architecture And Parallel Processing
Computer architects have always strived to increase the performance of theircomputer architectures. High performance may come from fast dense circuitry,packaging technology, and parallelism. Single-processor supercomputers haveachieved unheard of speeds and have been pushing hardware technology to the physicallimit of chip manufacturing. However, this trend will soon come to an end,because there are physical and architectural bounds that limit the computationalpower that can be achieved with a single-processor system. In this book we willstudy advanced computer architectures that utilize parallelism via multiple processingunits